package com.smart.community.property.service;

import com.smart.community.feign.property.dto.PropertyCompanyPaymentInfoDTO;

import java.util.List;
import java.util.Map;

/**
 * 物业公司支付服务接口
 * 
 * 提供物业公司支付相关的业务服务，包括收款码获取等功能
 * 业务流程：房户ID → 物业公司ID → 收款码信息
 * 
 * @author Wu.Liang
 * @version 1.0.0
 * @since 2025-01-30
 */
public interface IPropertyCompanyPaymentService {
    
    /**
     * 根据物业公司ID获取收款码信息
     * 
     * 核心支付接口：通过物业公司ID获取收款二维码、支付账户等信息
     * 用于缴费系统展示收款码，支持扫码支付
     * 
     * @param propertyCompanyId 物业公司ID
     * @return 物业公司支付信息，包含收款码、支付账户等
     */
    PropertyCompanyPaymentInfoDTO getPropertyCompanyPaymentInfo(Long propertyCompanyId);
    
    /**
     * 批量根据物业公司ID获取收款码信息
     * 
     * 用于批量缴费、批量查询等场景，提高查询效率
     * 
     * @param propertyCompanyIds 物业公司ID列表
     * @return 物业公司ID与支付信息的映射关系
     */
    Map<Long, PropertyCompanyPaymentInfoDTO> getPropertyCompanyPaymentInfoBatch(List<Long> propertyCompanyIds);
}
